package at.ac.tuwien.dsg.scaledom.test.util.dom;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import at.ac.tuwien.dsg.scaledom.util.DOMTraverserCallback;
public class MinimalOutputCallback implements DOMTraverserCallback {
private final int maxLevelForDetailedOutput;
private boolean lastNodeWasDetailed;
public MinimalOutputCallback(final int maxLevelForDetailedOutput) {
this.maxLevelForDetailedOutput = maxLevelForDetailedOutput;
lastNodeWasDetailed = true;
}
@Override
public void nodeTraversed(final Document doc, final Node node, final int level) {
if (!(node instanceof Element)) {
return;
}
if (level < maxLevelForDetailedOutput) {
if (!lastNodeWasDetailed) {
System.out.println();
lastNodeWasDetailed = true;
}
System.out.println(level + "-" + node.getNodeName());
} else {
if (!lastNodeWasDetailed) {
System.out.print('-');
}
System.out.print(level);
lastNodeWasDetailed = false;
}
}
}